<!DOCTYPE html>
<html lang="zh-CN" dir="ltr">
  <head>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width,initial-scale=1">
    <title>Git学习笔记 | Blog SI_Cheng-Yun</title>
    <meta name="description" content="一些资料、文档。">
    <meta name="generator" content="VitePress v1.6.3">
    <link rel="preload stylesheet" href="/index/assets/style.DYXkhmQR.css" as="style">
    <link rel="preload stylesheet" href="/index/vp-icons.css" as="style">
    
    <script type="module" src="/index/assets/app.BUYLDoDd.js"></script>
    <link rel="preload" href="/index/assets/inter-roman-latin.Di8DUHzh.woff2" as="font" type="font/woff2" crossorigin="">
    <link rel="modulepreload" href="/index/assets/chunks/theme.CeM0re9p.js">
    <link rel="modulepreload" href="/index/assets/chunks/framework.cFSTnEmB.js">
    <link rel="modulepreload" href="/index/assets/Git学习笔记.md.X5xehBWk.lean.js">
    <link rel="icon" href="/index/favicon.ico">
    <script id="check-dark-mode">(()=>{const e=localStorage.getItem("vitepress-theme-appearance")||"auto",a=window.matchMedia("(prefers-color-scheme: dark)").matches;(!e||e==="auto"?a:e==="dark")&&document.documentElement.classList.add("dark")})();</script>
    <script id="check-mac-os">document.documentElement.classList.toggle("mac",/Mac|iPhone|iPod|iPad/i.test(navigator.platform));</script>
  </head>
  <body>
    <div id="app"><div class="Layout" data-v-5d98c3a5><!--[--><!--]--><!--[--><span tabindex="-1" data-v-0b0ada53></span><a href="#VPContent" class="VPSkipLink visually-hidden" data-v-0b0ada53>Skip to content</a><!--]--><!----><header class="VPNav" data-v-5d98c3a5 data-v-ae24b3ad><div class="VPNavBar" data-v-ae24b3ad data-v-6aa21345><div class="wrapper" data-v-6aa21345><div class="container" data-v-6aa21345><div class="title" data-v-6aa21345><div class="VPNavBarTitle" data-v-6aa21345 data-v-1168a8e4><a class="title" href="/index/" data-v-1168a8e4><!--[--><!--]--><!----><span data-v-1168a8e4>Blog SI_Cheng-Yun</span><!--[--><!--]--></a></div></div><div class="content" data-v-6aa21345><div class="content-body" data-v-6aa21345><!--[--><!--]--><div class="VPNavBarSearch search" data-v-6aa21345><!--[--><!----><div id="local-search"><button type="button" class="DocSearch DocSearch-Button" aria-label="Search"><span class="DocSearch-Button-Container"><span class="vp-icon DocSearch-Search-Icon"></span><span class="DocSearch-Button-Placeholder">Search</span></span><span class="DocSearch-Button-Keys"><kbd class="DocSearch-Button-Key"></kbd><kbd class="DocSearch-Button-Key">K</kbd></span></button></div><!--]--></div><nav aria-labelledby="main-nav-aria-label" class="VPNavBarMenu menu" data-v-6aa21345 data-v-dc692963><span id="main-nav-aria-label" class="visually-hidden" data-v-dc692963> Main Navigation </span><!--[--><!--[--><div class="VPFlyout VPNavBarMenuGroup" data-v-dc692963 data-v-cf11d7a2><button type="button" class="button" aria-haspopup="true" aria-expanded="false" data-v-cf11d7a2><span class="text" data-v-cf11d7a2><!----><span data-v-cf11d7a2>友链</span><span class="vpi-chevron-down text-icon" data-v-cf11d7a2></span></span></button><div class="menu" data-v-cf11d7a2><div class="VPMenu" data-v-cf11d7a2 data-v-b98bc113><div class="items" data-v-b98bc113><!--[--><!--[--><div class="VPMenuLink" data-v-b98bc113 data-v-35975db6><a class="VPLink link vp-external-link-icon" href="https://cpuer.atomgit.net/innovation-hub/" target="_blank" rel="noreferrer" data-v-35975db6><!--[--><span data-v-35975db6>药·双创</span><!--]--></a></div><!--]--><!--[--><div class="VPMenuLink" data-v-b98bc113 data-v-35975db6><a class="VPLink link vp-external-link-icon" href="https://atomgit.com/cpuer" target="_blank" rel="noreferrer" data-v-35975db6><!--[--><span data-v-35975db6>CPUer</span><!--]--></a></div><!--]--><!--[--><div class="VPMenuLink" data-v-b98bc113 data-v-35975db6><a class="VPLink link vp-external-link-icon" href="https://vitejs.cn/vitepress/" target="_blank" rel="noreferrer" data-v-35975db6><!--[--><span data-v-35975db6>VitePress</span><!--]--></a></div><!--]--><!--]--></div><!--[--><!--]--></div></div></div><!--]--><!--]--></nav><!----><div class="VPNavBarAppearance appearance" data-v-6aa21345 data-v-6c893767><button class="VPSwitch VPSwitchAppearance" type="button" role="switch" title aria-checked="false" data-v-6c893767 data-v-5337faa4 data-v-1d5665e3><span class="check" data-v-1d5665e3><span class="icon" data-v-1d5665e3><!--[--><span class="vpi-sun sun" data-v-5337faa4></span><span class="vpi-moon moon" data-v-5337faa4></span><!--]--></span></span></button></div><!----><div class="VPFlyout VPNavBarExtra extra" data-v-6aa21345 data-v-bb2aa2f0 data-v-cf11d7a2><button type="button" class="button" aria-haspopup="true" aria-expanded="false" aria-label="extra navigation" data-v-cf11d7a2><span class="vpi-more-horizontal icon" data-v-cf11d7a2></span></button><div class="menu" data-v-cf11d7a2><div class="VPMenu" data-v-cf11d7a2 data-v-b98bc113><!----><!--[--><!--[--><!----><div class="group" data-v-bb2aa2f0><div class="item appearance" data-v-bb2aa2f0><p class="label" data-v-bb2aa2f0>Appearance</p><div class="appearance-action" data-v-bb2aa2f0><button class="VPSwitch VPSwitchAppearance" type="button" role="switch" title aria-checked="false" data-v-bb2aa2f0 data-v-5337faa4 data-v-1d5665e3><span class="check" data-v-1d5665e3><span class="icon" data-v-1d5665e3><!--[--><span class="vpi-sun sun" data-v-5337faa4></span><span class="vpi-moon moon" data-v-5337faa4></span><!--]--></span></span></button></div></div></div><!----><!--]--><!--]--></div></div></div><!--[--><!--]--><button type="button" class="VPNavBarHamburger hamburger" aria-label="mobile navigation" aria-expanded="false" aria-controls="VPNavScreen" data-v-6aa21345 data-v-e5dd9c1c><span class="container" data-v-e5dd9c1c><span class="top" data-v-e5dd9c1c></span><span class="middle" data-v-e5dd9c1c></span><span class="bottom" data-v-e5dd9c1c></span></span></button></div></div></div></div><div class="divider" data-v-6aa21345><div class="divider-line" data-v-6aa21345></div></div></div><!----></header><div class="VPLocalNav empty fixed" data-v-5d98c3a5 data-v-a6f0e41e><div class="container" data-v-a6f0e41e><!----><div class="VPLocalNavOutlineDropdown" style="--vp-vh:0px;" data-v-a6f0e41e data-v-8a42e2b4><button data-v-8a42e2b4>返回顶部</button><!----></div></div></div><!----><div class="VPContent" id="VPContent" data-v-5d98c3a5 data-v-1428d186><div class="VPDoc has-aside" data-v-1428d186 data-v-39a288b8><!--[--><!--]--><div class="container" data-v-39a288b8><div class="aside" data-v-39a288b8><div class="aside-curtain" data-v-39a288b8></div><div class="aside-container" data-v-39a288b8><div class="aside-content" data-v-39a288b8><div class="VPDocAside" data-v-39a288b8 data-v-3f215769><!--[--><!--]--><!--[--><!--]--><nav aria-labelledby="doc-outline-aria-label" class="VPDocAsideOutline" data-v-3f215769 data-v-a5bbad30><div class="content" data-v-a5bbad30><div class="outline-marker" data-v-a5bbad30></div><div aria-level="2" class="outline-title" id="doc-outline-aria-label" role="heading" data-v-a5bbad30>本页目录</div><ul class="VPDocOutlineItem root" data-v-a5bbad30 data-v-b933a997><!--[--><!--]--></ul></div></nav><!--[--><!--]--><div class="spacer" data-v-3f215769></div><!--[--><!--]--><!----><!--[--><!--]--><!--[--><!--]--></div></div></div></div><div class="content" data-v-39a288b8><div class="content-container" data-v-39a288b8><!--[--><!--]--><main class="main" data-v-39a288b8><div style="position:relative;" class="vp-doc _index_Git%E5%AD%A6%E4%B9%A0%E7%AC%94%E8%AE%B0" data-v-39a288b8><div><h1 id="git学习笔记" tabindex="-1">Git学习笔记 <a class="header-anchor" href="#git学习笔记" aria-label="Permalink to &quot;Git学习笔记&quot;">​</a></h1><blockquote><p>写在前面：</p><p>可用Git进行分布式版本管控的文档格式，不包括word、xlsx、ppt、pdf等富文本文档。</p><p>富文本文档只能把Git当网盘用，无法发挥Git的最大优势。</p><p>建议使用.md格式的文档（即markdown文档）以实现对Git的充分利用。</p></blockquote><h2 id="_1-git及git平台简介" tabindex="-1">1. Git及Git平台简介 <a class="header-anchor" href="#_1-git及git平台简介" aria-label="Permalink to &quot;1. Git及Git平台简介&quot;">​</a></h2><h3 id="_1-1-git简介" tabindex="-1">1.1 Git简介 <a class="header-anchor" href="#_1-1-git简介" aria-label="Permalink to &quot;1.1 Git简介&quot;">​</a></h3><details><p>Git（音标/gɪt/）是一个<strong>开源的分布式版本控制系统</strong>。</p><ul><li><p>所谓“<strong>开源</strong>”，即不存在付费、破解等问题，永久免费自由使用。</p></li><li><p>所谓“<strong>分布式</strong>”，即项目团队成员可以每个人独立/独自完成自己负责的项目分支/分块，然后一键汇总归并。甚至每个人完成一篇文档的一个部分，然后一键跟进即可形成一篇完整文档。而不需要凑在一起或者进行额外的联系协调工作。</p><blockquote><p>这里一定要额外关注的一点是：上述“文档”不支持word、xlsx、ppt、pdf这类富文本文档。只支持txt、md及代码格式的文档。</p></blockquote></li><li><p>所谓“<strong>版本控制</strong>”，以团队成员共同完成某个文档为例：</p><p>a. 文档文件由组长新建后，Git记录为<code>版本1</code>；</p><p>b. 然后成员A在<code>版本1</code>基础上写了一些内容并上传，Git记录为<code>版本2</code>；</p><p>c. 然后成员B也在<code>版本1</code>基础上写了一些内容并上传，此时对于“版本控制”，其实就有3个可能性：</p><ol><li><p>成员B的上传完全覆盖<code>版本2</code>(即覆盖成员A的内容)生成<code>版本3</code>，</p></li><li><p>在<code>版本2</code>基础上增添成员B的内容生成<code>版本3</code>，</p></li><li><p>上传一个与<code>版本2</code>平行的<code>版本3</code>。</p></li></ol><p><strong>以上3种可能性，Git全部支持，而且操作很方便。</strong></p><p>不仅如此，因为Git生成了每个版本之间的详细的过程记录，所以大家也可以回查各版本之间究竟修改了什么。并进行自由的版本间操作：</p><p>如上述的可能性中，选择了<code>3</code>，即生成了平行的<code>版本2</code>和<code>版本3</code>，如想将<code>版本2</code>和<code>版本3</code>合并，可以很方便的以其中一个版本为基础，将另一版本新加的内容添加进去，生成<code>版本4</code>。</p><p>再如<code>版本4</code>可能存在bug，得益于Git详细记录了版本间的各类信息，所以组长可自由将主版本回滚至<code>版本1</code>、<code>版本2</code>、<code>版本3</code>中的任何一个。</p></li><li><p>所谓“<strong>系统</strong>”，即Git不是一个独立的软件，而是一个“系统”——有各种各样的软件可以接入，去实现Git的功能。</p><blockquote><p>当然前提是得安装Git的底层功能服务。有些软件自带了，相当于帮你安装了，不过大部分软件没有帮你安装，是需要你自己先安装Git底层服务的。</p></blockquote></li></ul></details><h3 id="_1-2-git平台简介" tabindex="-1">1.2 Git平台简介 <a class="header-anchor" href="#_1-2-git平台简介" aria-label="Permalink to &quot;1.2 Git平台简介&quot;">​</a></h3><details><p>我们使用的<strong>AtomGit</strong>平台就是Git技术的一个具体实现，它作为一个“仓库”，或者说“中转站”，帮助我们实现Git的具体功能。当然除此以外，它也能够实现<strong>项目讨论</strong>、<strong>Pages服务</strong>等其他功能。最重要的是，它作为<a href="https://www.openatom.cn/about" target="_blank" rel="noreferrer">OpenAtom开放原子开源基金会</a>旗下的平台，它的上述各类服务都是免费的。</p><p>除<strong>AtomGit</strong>以外，也有很多Git平台：如微软的<a href="https://github.com/" target="_blank" rel="noreferrer"><strong>GitHub</strong></a>就是全球最大的Git平台，其历史久，项目多，功能全，不过国内访问的话网络不稳定（毕竟服务器在国外），会出现时快、时慢、时等、时断的问题。大家有空可以多去<a href="https://github.com/" target="_blank" rel="noreferrer">GitHub</a>看看，学习学习，有很多好项目可以参考。</p><blockquote><p>不过自己做项目的话得考虑Git服务网络稳定性问题，建议自用仓库还是选国内的，公开展示的可以选GitHub。</p></blockquote><p>然后<a href="https://gitee.com/" target="_blank" rel="noreferrer"><strong>Gitee</strong></a>、<a href="https://gitcode.com/" target="_blank" rel="noreferrer"><strong>GitCode</strong></a>等也是国内知名的Git平台。<a href="https://gitee.com/" target="_blank" rel="noreferrer"><strong>Gitee</strong></a>的特点是起步早，在国内知名度大些，国产开源项目多一些，但是免费团队协作服务的上限是5人，再多就要收费。<a href="https://gitcode.com/" target="_blank" rel="noreferrer"><strong>GitCode</strong></a>的特点是无人数上限，适合团队项目开发。</p><blockquote><p><a href="https://gitcode.net/" target="_blank" rel="noreferrer">老GitCode</a>是net域名的，我们本次说的GitCode是com域名、服务由华为云提供的。老GitCode用的是很早的GitLab家的服务，目前基本处于停止开发、只剩维保的阶段了，不建议再用了。</p></blockquote><p>另外，<a href="https://github.com/" target="_blank" rel="noreferrer"><strong>GitHub</strong></a>上的一些好项目，可以在<strong>AtomGit</strong>（或Gitee、GitCode）平台用<code>新建项目</code>-<code>从GitHub导入</code>的方法建立备份，以加快访问速度。</p></details><h2 id="_2-安装并配置git服务" tabindex="-1">2. 安装并配置Git服务 <a class="header-anchor" href="#_2-安装并配置git服务" aria-label="Permalink to &quot;2. 安装并配置Git服务&quot;">​</a></h2><details><h3 id="_2-1-下载并安装git底层服务" tabindex="-1">2.1 下载并安装Git底层服务 <a class="header-anchor" href="#_2-1-下载并安装git底层服务" aria-label="Permalink to &quot;2.1 下载并安装Git底层服务&quot;">​</a></h3><p>官网链接：<a href="https://git-scm.com/download/" target="_blank" rel="noreferrer">Git - Downloads</a></p><p>对于大部分同学，点击网页右侧的“Download for Windows”下载。下载后打开安装文件，一路无脑点“下一步”即可。</p><p>完成Git底层服务的安装后，其实就可以使用Git的功能了（当然这会儿是用命令行敲代码用Git。感兴趣的可以参考：[Git命令](<a href="https://www.yiibai.com/git/git_config.html%EF%BC%89" target="_blank" rel="noreferrer">https://www.yiibai.com/git/git_config.html）</a></p><h3 id="_2-2-配置git" tabindex="-1">2.2 配置Git <a class="header-anchor" href="#_2-2-配置git" aria-label="Permalink to &quot;2.2 配置Git&quot;">​</a></h3><p>安装完成Git底层服务后，在电脑桌面上右键（Win11系统要按住Shift，同时鼠标在桌面上右键），选“Open Git Bash Here”，会弹出Git的Bash界面如下：</p><p><img src="/index/assets/4.CpQzmJZW.jpg" alt="" loading="lazy"></p><blockquote><p>因为接下来的配置属于全局配置(global)，所以在哪Bash不影响操作，所以其实也不一定非要在桌面。</p></blockquote><p>第一步先切换成中文：在弹出的GitBash窗口右键，选“option”，然后再在弹出的Option界面里，找到“window”-“UI language”，下拉选择zh_CN，Apply应用或Save保存后，即可切换中文：</p><p><img src="/index/assets/5.DflxwiMN.jpg" alt="" loading="lazy"></p><p>接下来要开始输入一些指令了：</p><ul><li><p><strong>配置用户名</strong>。在GitBash窗口输入下述指令，其中“你的用户名”替换成你的用户名（如&quot;SI_Cheng-Yun&quot;），然后敲回车。（用户名一定记得用英文引号包起来）</p><div class="language-shell vp-adaptive-theme line-numbers-mode"><button title="Copy Code" class="copy"></button><span class="lang">shell</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">git</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> config</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> --global</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> user.name</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> &quot;你的用户名&quot;</span></span></code></pre><div class="line-numbers-wrapper" aria-hidden="true"><span class="line-number">1</span><br></div></div><p>这行指令的意思是：[Git] [配置] [全局的] [用户的名字] [&quot;你的用户名&quot;]</p><p>因为用户名是以字符串的数据类型存入Git系统的，所以一定要带上英文引号，告诉Git这是字符串，而不是变量。</p><p>这是Git的设计习惯。提交文件的时候，用于记录这是谁传过来的文件。具体设置什么用户名都不影响后续操作。</p></li><li><p><strong>配置用户邮箱</strong>。继续在GitBash窗口输入下述指令，其中“你的邮箱”替换成你的邮箱（如&quot;<a href="mailto:sichengyun@cpu.edu.cn" target="_blank" rel="noreferrer">sichengyun@cpu.edu.cn</a>&quot;），然后敲回车。（用户邮箱一定记得用英文引号包起来）</p><div class="language-shell vp-adaptive-theme line-numbers-mode"><button title="Copy Code" class="copy"></button><span class="lang">shell</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">git</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> config</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> --global</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> user.email</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> &quot;你的邮箱&quot;</span></span></code></pre><div class="line-numbers-wrapper" aria-hidden="true"><span class="line-number">1</span><br></div></div><blockquote><p>这行指令的意思是：[Git] [配置] [全局的] [用户的邮箱] [&quot;你的邮箱&quot;]</p></blockquote><p>因为邮箱是以字符串的数据类型存入Git系统的，所以一定要带上英文引号，告诉Git这是字符串，而不是变量。</p><blockquote><p>用邮箱来标记用户，这是Git的设计习惯。提交文件的时候，用于记录这是谁传过来的文件。具体设置什么用户邮箱都不影响后续操作。</p></blockquote></li></ul><h3 id="_2-3-开启数据同步的安全加密通道" tabindex="-1">2.3 开启数据同步的安全加密通道 <a class="header-anchor" href="#_2-3-开启数据同步的安全加密通道" aria-label="Permalink to &quot;2.3 开启数据同步的安全加密通道&quot;">​</a></h3><p>承接<code>2.2</code>的操作，继续在GitBash窗口输入下述指令，其中“你的邮箱”替换成刚才你输入的邮箱，然后敲回车（记得带上引号）。</p><div class="language-shell vp-adaptive-theme line-numbers-mode"><button title="Copy Code" class="copy"></button><span class="lang">shell</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">ssh-keygen</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> -t</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> rsa</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> -C</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> &quot;你的邮箱&quot;</span></span></code></pre><div class="line-numbers-wrapper" aria-hidden="true"><span class="line-number">1</span><br></div></div><ul><li><p>指令解读：</p><p>“ssh”：SSH是一套安全协议。它用SSH密钥（即“ssh-key”）进行文件数据传输。</p><p>“gen”是generate的缩写，故“ssh-keygen”意味“生成SSH密钥”。</p><p>“-t”是-type的缩写，即指定密钥的类型为“rsa”。</p><p>“-”是配置参数相关的标识符，类似于“选项”。“-”是短选项，小选项；如上文的“--global”中的“--”是长选项，大选项/全局选项。</p><blockquote><p>密钥类型有两种，RSA和DSA：</p><p>RSA加密算法是一种非对称加密算法，由三位麻省理工人员开发，R、S、A分别是其三人姓氏首字母。</p><p>DSA：Digital Signature Algorithm（DSA）是Schnorr和ElGamal签名算法的变种。</p><p>ssh-keygen指令默认使用的就是RSA密钥，所以其实不加“-t rsa”也行，但如果想生成DSA密钥，就需要加参数&quot;-t dsa&quot;。</p></blockquote><p>“-C”是-comment的缩写，即指名注释为&quot;你的邮箱&quot;。这将为本次的密钥添加一个以你的邮箱为文本内容的注释，以此区别其他的密钥。</p></li></ul><p>后续一连串的对话框之后，SSH公钥所在的文件目录如下所述。其中，XXXXX.pub文件是公钥，没&quot;pub&quot;的是私钥。</p><div class="language-text vp-adaptive-theme line-numbers-mode"><button title="Copy Code" class="copy"></button><span class="lang">text</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span>C:\Users\你的windows系统的用户名\.ssh</span></span></code></pre><div class="line-numbers-wrapper" aria-hidden="true"><span class="line-number">1</span><br></div></div><p><img src="/index/assets/9.DzHLWXHR.jpg" alt="" loading="lazy"></p><p>获得XXXXX.pub文件后，用文本文档打开该文件，我们将用此文件的内容来和Git平台建立加密连接。</p></details><h2 id="_3-git平台-网站-操作" tabindex="-1">3. Git平台(网站)操作 <a class="header-anchor" href="#_3-git平台-网站-操作" aria-label="Permalink to &quot;3. Git平台(网站)操作&quot;">​</a></h2><h3 id="_3-1-在atomgit平台建立加密连接" tabindex="-1">3.1 在AtomGit平台建立加密连接 <a class="header-anchor" href="#_3-1-在atomgit平台建立加密连接" aria-label="Permalink to &quot;3.1 在AtomGit平台建立加密连接&quot;">​</a></h3><details><p>在<a href="https://atomgit.com/" target="_blank" rel="noreferrer">AtomGit平台</a>注册账号后，在右上角头像点下拉栏里，找到“个人设置”并点击：</p><p><img src="/index/assets/6.B2bf0Kwk.jpg" alt="" loading="lazy"></p><p>然后在左侧找到“安全中心”-“SSH Keys”并点击：</p><p><img src="/index/assets/7.DZ6H8HNM.jpg" alt="" loading="lazy"></p><p>将此前获得的XXXXX.pub文件的内容复制进“公钥”输入框里。公钥名称框可以随便填写，好区分就行。然后点击“添加SSH公钥”即可。</p><p><img src="/index/assets/8.C15Yp_Ax.jpg" alt="" loading="lazy"></p><p>此时，在GitBash窗口输入下述指令，以完成SSH通道的建立：</p><div class="language-shell vp-adaptive-theme line-numbers-mode"><button title="Copy Code" class="copy"></button><span class="lang">shell</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">ssh</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> -T</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> git@atomgit.com</span></span></code></pre><div class="line-numbers-wrapper" aria-hidden="true"><span class="line-number">1</span><br></div></div><p>-T即无需与atomgit.com的Git交互（仅检查一下绑定连接）。</p><p>在敲回车确认后，即完成SSH通道的建立。</p></details><h3 id="_3-2-在atomgit平台建立仓库" tabindex="-1">3.2 在AtomGit平台建立仓库 <a class="header-anchor" href="#_3-2-在atomgit平台建立仓库" aria-label="Permalink to &quot;3.2 在AtomGit平台建立仓库&quot;">​</a></h3><details><p>点击右上角的加号按钮，选择“新建代码库”，</p><p><img src="/index/assets/1.DFVoyDmx.jpg" alt="" loading="lazy"></p><p>然后会进入“新建代码库”界面，如下图：</p><p><img src="/index/assets/2.whvO1U3C.jpg" alt="" loading="lazy"></p><p>可以参考上图输入仓库的基本信息。这里的几个输入内容解释如下：</p><ul><li><p><strong>代码库名称</strong>：这个只是你(或你们团队)自己看的，命名很自由。</p></li><li><p><strong>归属</strong>：这个直接决定这个库的网址。前面那个选项是用户名，如果希望归属为“cpuer”，请联系我；后面那个输入框是这个库真正的名称，会在这个库的网址里出现，要好好想想再填写。</p></li><li><p><strong>公开性</strong>：如果私有，则只有仓库成员能看到仓库的内容（成员也可以修改内容）；如果公开，那么就像个公开网页一样，大家都能看到。</p></li><li><p><strong>代码库描述</strong>：仓库的简单介绍。</p></li><li><p><strong>创建README.md</strong>：就是项目点开之后，出现在首页的介绍文档啊！一定要点上！它给你一个模板，你可以去修改项目主页的介绍。</p><blockquote><p>.md文件是一个遵循markdown语法的文本文件格式，markdown是一个轻量的“标记”语法，我们这个教程就是用markdown写的。感兴趣的可以搜一下，网上教程很多，10分钟不到就看完了。</p></blockquote></li><li><p><strong>.gitignore</strong>：顾名思义，就是git的ignore，git服务会忽视掉哪些文件、文件夹。比如<code>.gitignore</code>文件里写了个“test”，那么test文件夹、test文件，都不会再同步了。如果是小白的话，可以不点上，也可以点上之后随便选一个，看看它这个文档是什么格式，方便以后用git的ignore功能。</p></li><li><p><strong>添加开源许可证</strong>：这是极为推荐点上的。新建项目，第一时间添加许可证，这是个很好的习惯！然后开源许可证这里建议用<a href="http://license.coscl.org.cn/MulanPSL2" target="_blank" rel="noreferrer"><strong>MulanPSL-2.0</strong></a>，木兰宽松许可证(第2版)，它是我们国家自己的开源协议，由<a href="https://www.coscl.org.cn/" target="_blank" rel="noreferrer">中国开源云联盟</a>起草发布。</p></li></ul><p>设置完成后，点击“确定”，仓库就新建完成了。新建完成的页面如下：</p><p><img src="/index/assets/3.rEihZ9Gu.jpg" alt="" loading="lazy"></p><p>可以看到，仓库里有2个文件。license是许可证文件；README.md文件则是项目介绍文档，项目页面会自动显示介绍文档。</p></details><h2 id="_4-git本地-软件-操作" tabindex="-1">4. Git本地(软件)操作 <a class="header-anchor" href="#_4-git本地-软件-操作" aria-label="Permalink to &quot;4. Git本地(软件)操作&quot;">​</a></h2><h3 id="_4-1-安装git本地工具软件" tabindex="-1">4.1 安装Git本地工具软件 <a class="header-anchor" href="#_4-1-安装git本地工具软件" aria-label="Permalink to &quot;4.1 安装Git本地工具软件&quot;">​</a></h3><details><p>这里就用<a href="https://code.visualstudio.com/" target="_blank" rel="noreferrer"><strong>VSCode</strong></a>演示了。就不折腾别的Git软件了。</p><p>下载安装之后，插件里安装中文包即可切换语言为中文。</p></details><h3 id="_4-2-用git工具拉取项目" tabindex="-1">4.2 用Git工具拉取项目 <a class="header-anchor" href="#_4-2-用git工具拉取项目" aria-label="Permalink to &quot;4.2 用Git工具拉取项目&quot;">​</a></h3><details><p>这里就用<a href="https://code.visualstudio.com/" target="_blank" rel="noreferrer"><strong>VSCode</strong></a>演示了。</p><blockquote><p><strong>注意！！！所有同步操作均需要在项目编辑程序不开“运行”、“预览”的情况下进行！（如Cocos Creator等软件，打开软件就会自动开服务器，得完全关闭Cocos Creator才行，不然一堆临时文件，操作麻烦，Git效率很低！）</strong></p><p><strong>如果是新建的本地项目，个人建议在网上建个空项目，用IDE拉取本地，然后再把原来的本地项目文件覆盖到拉取下来的空项目里。</strong></p></blockquote><p>在AtomGit的项目页面，找到“克隆/下载”，选择SSH后点击网址右侧的复制按钮（两页纸的那个按钮）：</p><p><img src="/index/assets/12.D7hYKAIm.jpg" alt="" loading="lazy"></p><p>打开VSCode新窗口，在&quot;启动&quot;下找到&quot;克隆Git仓库&quot;：</p><p><img src="/index/assets/10.DTavAuzv.jpg" alt="" loading="lazy"></p><p>然后建立本地库与远程库的绑定。在中上部弹出的输入框中输入远程库的地址，就是前面得到的所建仓库的Gitee源（SSH协议或HTTPS协议），然后回车。</p><p><img src="/index/assets/11.DJTsPMp9.jpg" alt="" loading="lazy"></p><p>由此，即建立了本地库与远程库的绑定。</p><p>（等熟练了，也可以用VSCode初始化Git，然后添加远程库，然后切换远程库）</p></details><h3 id="_4-3-实现个人-或团队协同-管理项目" tabindex="-1">4.3 实现个人（或团队协同）管理项目 <a class="header-anchor" href="#_4-3-实现个人-或团队协同-管理项目" aria-label="Permalink to &quot;4.3 实现个人（或团队协同）管理项目&quot;">​</a></h3><ol start="0"><li><p><strong>Git原理</strong>：</p><p><img src="/index/assets/13.CMKsNRgx.jpg" alt="" loading="lazy"></p><p>在VSCode上，“add”就是“＋”按钮，即暂存；“commit”就是“提交”按钮；“push”就是“同步更改”或即“推送”。</p><p>打开VSCode之后第一件事是先看看网络源远程库有没有新内容。</p><p><img src="/index/assets/14.HqLImxoA.jpg" alt="" loading="lazy"></p><p>如果远程库有改动（团队成员提交的)，此时会有“同步更改↓”（注意此处箭头向下），点击即可。</p></li><li><p><strong>正常工作，写代码/修改内容。</strong></p></li><li><p><strong>“＋”暂存按钮。</strong></p><p>在“源代码管理”页面，点击“更改”那里的“+”号暂存。</p><p><img src="/index/assets/16.BzOzaBPs.jpg" alt="" loading="lazy"></p><p>有些冗余文件不需要提交，可以用“添加到.gitignore”来处理。</p><p><img src="/index/assets/17.BFHmsuYt.jpg" alt="" loading="lazy"></p><p>（以后习惯了，其实可以跳过这一步，直接点“提交”，一股脑提交掉）</p></li><li><p><strong>“提交”按钮。</strong></p><p>点击图中“源代码管...”右侧的“√”将暂存的更改提交本地库。</p><p>其实这个时候点击“√提交”按钮能一键提交到本地库。</p><p><img src="/index/assets/18.5l29Uj62.jpg" alt="" loading="lazy"></p><ul><li>在弹出的“COMMIT_EDITMSG”文件中输入本次提交的附言，个人习惯以“日期版本.姓名.修改内容”附言，即如“230328a.SIChengYun.balabala”</li></ul><p><img src="/index/assets/19.Dh7vix-K.jpg" alt="" loading="lazy"></p><ul><li>填写好附言，点击“COMMIT_EDITMSG”文件右边的“√”，并在后续的弹出框中点击确认。</li></ul><p><img src="/index/assets/20.D30Fo4cP.jpg" alt="" loading="lazy"></p><p>（以后习惯了，其实可以在“源代码管理”下方的输入框里直接输入提交附言）</p></li><li><p><strong>【重要】代码修改完成之后，提交并同步到远程仓库之前，务必检查一下有没有同事也做了提交。方法就是点“拉取(变基)”。</strong></p><p><img src="/index/assets/23.CMGNDDWo.jpg" alt="" loading="lazy"></p><p>变基分支，等价于命令行代码<code>shell pull --rebase --autostash</code>，即告诉Git，以远程端最新的版本作为参考，来比较你的代码的修改内容。</p><p>此操作是为了提前找到冲突，避免冲突，极为重要。（比如你的同事也修改了同样的文件，而修改的代码还和你修改的不一样，那位同事在你之前提交了，那么就会出现冲突）</p></li><li><p><strong>“同步更改↑”按钮。</strong></p><p><img src="/index/assets/15.DAbRJ6zg.jpg" alt="" loading="lazy"></p><p>注意此处“同步更改↑”箭头向上。</p></li><li><p><strong>完毕！</strong></p></li></ol></div></div></main><footer class="VPDocFooter" data-v-39a288b8 data-v-e257564d><!--[--><!--]--><div class="edit-info" data-v-e257564d><!----><div class="last-updated" data-v-e257564d><p class="VPLastUpdated" data-v-e257564d data-v-e98dd255>最后编辑: <time datetime="2024-12-11T10:21:11.000Z" data-v-e98dd255></time></p></div></div><!----></footer><!--[--><!--]--></div></div></div><!--[--><!--]--></div></div><footer class="VPFooter" data-v-5d98c3a5 data-v-e315a0ad><div class="container" data-v-e315a0ad><p class="message" data-v-e315a0ad>Copyright © SI_Cheng-Yun</p><p class="copyright" data-v-e315a0ad>京ICP备2020036654号-9</p></div></footer><!--[--><!--]--></div></div>
    <script>window.__VP_HASH_MAP__=JSON.parse("{\"about.md\":\"DjKhyEUd\",\"backup_实验资源共享管理平台项目_index.md\":\"BnX1bTF-\",\"backup_实验资源共享管理平台项目_使用手册.md\":\"CvWF43bR\",\"backup_细胞房规章制度.md\":\"DVzkhGih\",\"freecad学习笔记.md\":\"DHx0eita\",\"git学习笔记.md\":\"X5xehBWk\",\"index.md\":\"CNlKXTUG\",\"zotero学习笔记.md\":\"DDvr6Kqv\",\"双创课复习建议.md\":\"CSKSn4Ku\",\"远程桌面使用方法.md\":\"qW7_nlDw\"}");window.__VP_SITE_DATA__=JSON.parse("{\"lang\":\"zh-CN\",\"dir\":\"ltr\",\"title\":\"Blog SI_Cheng-Yun\",\"description\":\"一些资料、文档。\",\"base\":\"/index/\",\"head\":[],\"router\":{\"prefetchLinks\":true},\"appearance\":true,\"themeConfig\":{\"sidebarMenuLabel\":\"网站地图\",\"outlineTitle\":\"本页目录\",\"returnToTopLabel\":\"返回顶部\",\"notFound\":{\"code\":\"未找到页面\",\"title\":\"抱歉，您访问的页面不存在\",\"quote\":\"请检查您输入的网址是否正确，或者点击下面的链接返回首页\",\"linkLabel\":\"返回首页\",\"linkText\":\"返回首页\"},\"nav\":[{\"text\":\"友链\",\"items\":[{\"text\":\"药·双创\",\"link\":\"https://cpuer.atomgit.net/innovation-hub/\"},{\"text\":\"CPUer\",\"link\":\"https://atomgit.com/cpuer\"},{\"text\":\"VitePress\",\"link\":\"https://vitejs.cn/vitepress/\"}]}],\"sidebar\":[],\"footer\":{\"message\":\"Copyright © SI_Cheng-Yun\",\"copyright\":\"京ICP备2020036654号-9\"},\"outline\":[2,3],\"lastUpdated\":{\"text\":\"最后编辑\",\"formatOptions\":{\"dateStyle\":\"short\",\"timeStyle\":\"medium\"}},\"search\":{\"provider\":\"local\",\"options\":{\"miniSearch\":{\"searchOptions\":{\"fuzzy\":0.2,\"prefix\":true,\"boost\":{\"title\":4,\"text\":2,\"titles\":1}}}}}},\"locales\":{},\"scrollOffset\":134,\"cleanUrls\":false}");</script>
    
  </body>
</html>